<?php

/*
 * Require - Om inte filen finns stoppas exekveringen(fel ordval) av PHP-filen
 *
 * Require_once - Filen läses bara in en gång. Ignorerar om man require:ar flera gånger.
 *
 * Include - Om filen inte finns fortsätter koden att köras efter inkluderingen.
 *
 * Include_once - Filen läses bara in en gång. Ignorerar om den redan är inkluderad.
*/



/*
 * Integer kan innehålla heltal i form av decimala, oktala, hexadecimala tal.
 * 
 * Float kan innehålla decimaltal
 * 
 * Bool kan ha värdena TRUE eller FALSE
 * 
 * String innehåller tecken
 * 
 * Arrayer kan innehålla det mesta; Integers, Floats, Bools, Strängar, Objekt och även arrayer.
 */


 
class FragaTre{
	private $testTal = 45;
	private $testString = "Teststräng";
	private $testSession = "Testsession";
	private $testFloat = 352.293;
	private $testNumString = "23";
	private $foo = "foo";
	private $bar = "bar";
	
	private $svar = "";

	public function TestFunctions(){
		
		// Is_int - funktion som testar om det inmatade värdet är en Integer - returnerar TRUE eller FALSE.	
		if (is_int($this->testTal)) {
			$this->svar .= "$this->testTal är en Integer!<br />";
		} else {
			$this->svar .= "$this->testTal är inte en Integer!<br />";
		}
	
		// is_string - funktion som testar om det inmatade värdet är en sträng - returnerar TRUE eller FALSE.
		if (is_string($this->testTal)){
			$this->svar .= "$this->testTal är en sträng!<br />";
		} else {
			$this->svar .= "$this->testTal är inte en sträng!<br />";
		}
	
		// isset - funktion som testar om angivna variabeln är satt och inte är NULL
		// Kan testa flera variabel i samma funktion. Då måste alla vara satta för att funktionen ska returnera TRUE;		
		if (isset($_SESSION[$this->testSession])){
			$this->svar .= "Sessionen är satt! <br />";
		} else {
			$this->svar .= "Sessionen är inte satt!<br />";
		}
		
		// is_numeric - Funktion som testar om angivna variabeln är numerisk eller är en numerisk sträng
		if (is_numeric($this->testNumString)){
			$this->svar .= "$this->testNumString är numerisk! <br />";
		} else {
			$this->svar .= "$this->testNumString är inte numeriskt! <br />";
		}
		
		if (is_numeric($this->testString)){
			$this->svar .= "$this->testString är numerisk! <br />";
		} else {
			$this->svar .= "$this->testString är inte numeriskt! <br />";
		} 
		
		//unset - Förstör angiven variabel
		unset($this->bar);
		$this->svar .= $this->foo;
		$this->svar .= $this->bar;
		
		return $this->svar;
		
	}
}

$Fragor = new FragaTre();
echo $Fragor->TestFunctions();
